package com.by.common.constant;

/**
 * 订单服务常量定义
 */
public class OrderConstant {

    /**
     * 订单过期时间（分钟）
     */
    public static final int ORDER_EXPIRE_TIME = 30;

    /**
     * 普通商品库存key前缀
     */
    public static final String NORMAL_STOCK_KEY_PREFIX = "normal:stock:";

    /**
     * 消息状态：0-待确认（在本地事务中被记录）
     */
    public static final int MESSAGE_STATUS_PENDING = 0;

    /**
     * 消息状态：1-待发送（事务提交后更新）
     */
    public static final int MESSAGE_STATUS_TO_BE_SENT = 1;

    /**
     * 消息状态：2-已发送（成功投递到消息队列）
     */
    public static final int MESSAGE_STATUS_SENT = 2;

    /**
     * 消息状态：3-发送失败
     */
    public static final int MESSAGE_STATUS_FAILED = 3;

    /**
     * 消息状态：4-已取消（业务事务回滚）
     */
    public static final int MESSAGE_STATUS_CANCELLED = 4;

    /**
     * 消息重试间隔（秒）
     */
    public static final int MESSAGE_RETRY_INTERVAL_SECONDS = 30;

    // --- 消息类型 ---

    /**
     * 消息类型：商品库存扣减
     */
    public static final String MESSAGE_TYPE_STOCK_DECREASE = "stock_decrease";

    /**
     * 消息类型：商品库存确认
     */
    public static final String MESSAGE_TYPE_STOCK_CONFIRM = "stock_confirm";

    /**
     * 消息类型：商品库存回滚
     */
    public static final String MESSAGE_TYPE_STOCK_ROLLBACK = "stock_rollback";

    public static final int MAX_RETRY_COUNT =3;
}